/*
 * 版权所有 (C) 2015 知启蒙(ZHIQIM) 保留所有权利。[遇见知启蒙，邂逅框架梦]
 * 
 * https://zhiqim.org/project/zhiqim_framework/zhiqim_kernel.htm
 *
 * Zhiqim Kernel is licensed under Mulan PSL v2.
 * You can use this software according to the terms and conditions of the Mulan PSL v2.
 * You may obtain a copy of Mulan PSL v2 at:
 *          http://license.coscl.org.cn/MulanPSL2
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
 * See the Mulan PSL v2 for more details.
 */
package org.zhiqim.kernel.logging.logger;

import java.util.logging.Level;

import org.zhiqim.kernel.logging.Log;
import org.zhiqim.kernel.logging.Logger;

/**
 * 适配JDK14的日志，只支持三种，DEBUG,INFO,ERROR，对应FINE,INFO,SEVERE
 *
 * @version v1.0.0 @author zouzhigang 2016-1-9 新建与整理
 */
public class Jdk14Logger implements Logger
{
    @Override /** 初始化加载 */
    public boolean load()
    {
        return true;
    }
    
    @Override /** 日志记录器记录日志 */
    public void append(Log log, int level, String message, Throwable throwable)
    {
        Level jdk14Level = getLevel(level);
        
        java.util.logging.Logger jdk14Log = java.util.logging.Logger.getLogger(log.getLogNameOrClassName());
        jdk14Log.log(jdk14Level, message, throwable);
    }

    @Override /** 判断日志级别是否开启 */
    public boolean isEnabled(Log log, int level)
    {
        Level jdk14Level = getLevel(level);
        
        java.util.logging.Logger jdk14Log = java.util.logging.Logger.getLogger(log.getLogNameOrClassName());
        return jdk14Log.isLoggable(jdk14Level);
    }
    
    /** 获取适配的JDK14的日志等级 */
    private Level getLevel(int level)
    {
        switch (level)
        {
        case DEBUG:return Level.FINE;
        case INFO:return Level.INFO;
        case ERROR:case WARN:case FATAL:default:return Level.SEVERE;
        }
    }
}
